1. Field
The present disclosure relates in one exemplary aspect to hardware implementations of robotic apparatus.
2. Description of the Related Art
Current controller systems for robotic devices generally fall under two design categories: controller boards and controller boxes. Controller boards generally comprise a single printed circuit board with onboard integrated circuits (processors, flash memory, RAM, etc.) and pin or other connectors for power and serial input/output. These boards can be small and lightweight, and can have light to moderate computing capabilities. However, the user is responsible for providing power and other necessary signaling to the board, and making physically secure connections that will not fail under the mechanical stress of the robotic environment.
Controller boxes offer a similar range of computing power to that of the boards, but also provide more all-in-one functionality. Boxes often provide onboard power supply/management for computational devices and external devices. Boxes may also include an onboard user interface (e.g. display and keypad).
One example of the foregoing, Arduino, is a popular open-source microcontroller board line. The Arduino board has a low performance processor and small banks of RAM and flash memory (less than 100 Kbytes). The Arduino microcontroller can be programmed through the Arduino Integrated development Environment (IDE). The Arduino IDE includes a C/C++ library that provides custom functions for setting up the functions of the microcontroller board. The provided C/C++ library ostensibly simplifies programming the microcontroller. With knowledge of microcontroller operation and an intermediate level knowledge of the C/C++ programming environment, a user may setup control functions for the Arduino microcontroller. Further, the comparatively low functionality of the hardware of the Arduino board necessitates that only the most minimal operating systems and languages can be used. Thus, two primary limitations of this environment are exposed: (i) one can readily reach the limits of the capability of the Arduino board without complex programming; and (ii) intrinsic knowledge of microcontroller programming and programming languages is required to utilize the capabilities of the board.
Other controller boards, such as the Beagle Board and Gumstix, offer more processing power and memory. However, the user is still responsible for powering/signaling the board, and engineering fault-resistant connections. Further, the increase computing power of the board requires a more complex programming environment to fully take advantage of their increased computing power, thereby increasing the skill level required for their use.
One example of a controller box is the LEGO® NXT. The NXT box is generally similar in computing performance to the Arduino board. In addition, the NXT box is offered with the LEGO Mindstorms system, which allows for programming of the NXT box via a flow-chart-based graphical programming language called the Robotic Command eXplorer (RCX) code. The RCX language allows a user to lay out their commands graphically in the program editor. The NXT box also includes battery cells able to power the on board computing devices and a number of external add-on devices such as servo motors. A user interface including a display and keypad is disposed on the outer surface of the NXT box. A user may initiate various pre-programmed routines from this interface. The battery cells (which are quite large to support the powering of servos) and on-board user interface add considerable bulk to the NXT box, when compared to the computationally similar Arduino board. The bulk limits the ability of the user to manage the form of their robotic device, as well as its capabilities.
The VEX Pro is another extant controller box, but with processing power somewhat in excess of the Gumstix board. Therefore, the VEX Pro requires a similar programming skill set to that of the Gumstix, but the integrated nature of the VEX Pro reduces the need for a user to engineer his/her own connections. The VEX Pro has both an onboard interface and onboard battery pack capable of powering servos. Thus, the VEX Pro disadvantageously has bulk similar to the LEGO NXT.
The foregoing controller boards require the user to engineer a significant portion of the robotic infrastructure. Thus, users lacking experience soldering and/or coupling of connections and working with power supplies may find these boards too complex. Controller boxes offer users an integrated option without the need to engineer such infrastructure, but are often bulky and add functionality that may be unnecessary for the user. Further, all of these systems require programming schemes that may be too complex for inexperienced users, because they either rely on text-based or graphical computing languages.
A third type robotic system foregoes central control of any type. Cubelets (manufactured by Modular Robotics, LLC) allow for a construction of a robot through the addition of cubes dedicated to a highly specific single task. Cube tasks are limited to one of simple voltage logic control operations (signal max, signal min, signal addition or subtraction), motion (wheels or rotation plates), power supply, light sensing, distance sensing, or light generation. The Cubelets do not allow for any behavioral control (i.e. no programming or software input), but rather have their operation determined by the physical arrangement of the simple logic functions of the cube. Thus, a user of the Cubelet system is limited to a single behavioral profile for any given physical configuration of the Cubelet modules.
Thus, there is a salient need for improved robotic controller apparatus and methods that require little if any engineering experience, are comparatively high in performance, and do not necessitate the inclusion of potentially unused functionality. Ideally such improved apparatus and methods would also incorporate a highly modular and interchangeable architecture.